///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Oct  8 2012)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////

#ifndef __SMEGEDITOR_GUI_H__
#define __SMEGEDITOR_GUI_H__

#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/string.h>
#include <wx/bitmap.h>
#include <wx/image.h>
#include <wx/icon.h>
#include <wx/menu.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/stattext.h>
#include <wx/treectrl.h>
#include <wx/sizer.h>
#include <wx/panel.h>
#include <wx/statusbr.h>
#include <wx/frame.h>
#include <wx/button.h>
#include <wx/spinctrl.h>
#include <wx/dialog.h>
#include <wx/listbox.h>

///////////////////////////////////////////////////////////////////////////

#define wxID_CONVEX_HULL_CREATOR 1000
#define wxVALIDATE_CONVEX_HULL 1001
#define wxCANCEL_CONVEX_HULL 1002
#define wxID_BASE_ENTITY_CHOOSER_DIALOG 1003
#define wxVALIDATE_BASE_ENTITY 1004
#define wxCANCEL_BASE_ENTITY 1005

///////////////////////////////////////////////////////////////////////////////
/// Class SmegEditorFrameGUI
///////////////////////////////////////////////////////////////////////////////
class SmegEditorFrameGUI : public wxFrame 
{
	private:
	
	protected:
		wxMenuBar* m_menuBar;
		wxMenu* m_fileMenu;
		wxMenu* m_editMenu;
		wxMenuItem* m_removeItemMenuItem;
		wxMenuItem* m_addGroupMenuItem;
		wxMenuItem* m_randomPositionMenuItem;
		wxMenu* m_helpMenu;
		wxPanel* m_leftPanel;
		wxStaticText* m_projectLabel;
		wxTreeCtrl* m_projectTreeCtrl;
		wxStaticText* m_componentsLabel;
		wxTreeCtrl* m_componentsTreeCtrl;
		wxBoxSizer* m_canvasLayout;
		wxPanel* m_rightPanel;
		wxBoxSizer* m_rightLayout;
		wxStaticText* m_propertyLabel;
		wxStatusBar* m_statusBar;
		wxMenu* m_projectPopupMenu;
		wxMenuItem* m_removeItemPopupMenu;
		wxMenuItem* m_addGroupPopupMenu;
		
		// Virtual event handlers, overide them in your derived class
		virtual void OnNewProject( wxCommandEvent& event ) { event.Skip(); }
		virtual void OnOpenProject( wxCommandEvent& event ) { event.Skip(); }
		virtual void OnSaveProject( wxCommandEvent& event ) { event.Skip(); }
		virtual void OnSaveProjectAs( wxCommandEvent& event ) { event.Skip(); }
		virtual void OnQuit( wxCommandEvent& event ) { event.Skip(); }
		virtual void OnCopySelected( wxCommandEvent& event ) { event.Skip(); }
		virtual void OnCutSelected( wxCommandEvent& event ) { event.Skip(); }
		virtual void OnPasteSelected( wxCommandEvent& event ) { event.Skip(); }
		virtual void OnProjectItemRemove( wxCommandEvent& event ) { event.Skip(); }
		virtual void OnProjectItemAddGroup( wxCommandEvent& event ) { event.Skip(); }
		virtual void OnAbout( wxCommandEvent& event ) { event.Skip(); }
		virtual void OnProjectItemBeginDrag( wxTreeEvent& event ) { event.Skip(); }
		virtual void OnProjectItemEndDrag( wxTreeEvent& event ) { event.Skip(); }
		virtual void OnProjectItemSubMenu( wxTreeEvent& event ) { event.Skip(); }
		virtual void OnProjectItemSelected( wxTreeEvent& event ) { event.Skip(); }
		virtual void OnComponentSelected( wxTreeEvent& event ) { event.Skip(); }
		
	
	public:
		
		SmegEditorFrameGUI( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("SmegEditor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 1280,1024 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
		
		~SmegEditorFrameGUI();
		
		void SmegEditorFrameGUIOnContextMenu( wxMouseEvent &event )
		{
			this->PopupMenu( m_projectPopupMenu, event.GetPosition() );
		}
	
};

///////////////////////////////////////////////////////////////////////////////
/// Class ConvexHullCreatorDialogGUI
///////////////////////////////////////////////////////////////////////////////
class ConvexHullCreatorDialogGUI : public wxDialog 
{
	private:
	
	protected:
		wxBoxSizer* m_canvasLayout;
		wxPanel* m_rightPanel;
		wxButton* m_validateConvexHull;
		wxButton* m_cancelButton;
		wxStaticText* m_numVerticesLabel;
		wxSpinCtrl* m_numVerticesSpin;
		wxBoxSizer* m_multiplierLayout;
		wxStaticText* m_sizeMultiplierLabel;
		wxPanel* m_propertyPanel;
		wxBoxSizer* m_propertyLayout;
		
		// Virtual event handlers, overide them in your derived class
		virtual void OnValidateConvexHull( wxCommandEvent& event ) { event.Skip(); }
		virtual void OnCancelConvexHull( wxCommandEvent& event ) { event.Skip(); }
		virtual void OnNumVerticesChanged( wxSpinEvent& event ) { event.Skip(); }
		
	
	public:
		
		ConvexHullCreatorDialogGUI( wxWindow* parent, wxWindowID id = wxID_CONVEX_HULL_CREATOR, const wxString& title = wxT("Convex Hull Creator"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 850,500 ), long style = wxDEFAULT_DIALOG_STYLE|wxSTAY_ON_TOP ); 
		~ConvexHullCreatorDialogGUI();
	
};

///////////////////////////////////////////////////////////////////////////////
/// Class BaseEntityChooserDialogGUI
///////////////////////////////////////////////////////////////////////////////
class BaseEntityChooserDialogGUI : public wxDialog 
{
	private:
	
	protected:
		wxListBox* m_BaseEntityList;
		wxButton* m_ValidateButton;
		wxButton* m_CancelButton;
		
		// Virtual event handlers, overide them in your derived class
		virtual void OnChooseBaseEntity( wxCommandEvent& event ) { event.Skip(); }
		virtual void OnValidateBaseEntity( wxCommandEvent& event ) { event.Skip(); }
		virtual void OnCancelBaseEntity( wxCommandEvent& event ) { event.Skip(); }
		
	
	public:
		
		BaseEntityChooserDialogGUI( wxWindow* parent, wxWindowID id = wxID_BASE_ENTITY_CHOOSER_DIALOG, const wxString& title = wxT("Base Entity chooser"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 200,300 ), long style = wxDEFAULT_DIALOG_STYLE ); 
		~BaseEntityChooserDialogGUI();
	
};

#endif //__SMEGEDITOR_GUI_H__
